-
Notifications
You must be signed in to change notification settings - Fork 6
Release v0.0.4 #22
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Release v0.0.4 #22
Conversation
bsbodden
commented
Apr 5, 2025
•
edited
Loading
edited
- fix(redis): implement transaction handling for Redis checkpointing (Interruption issue #11)
- fix: enable all skipped tests by using mock agents and proper setup
- fix: prevent blob and write accumulation in ShallowRedisSaver classes (AsyncShallowRedisSaver Not Overwriting Checkpoint Blobs and Writes #13)
- feat(redis): implement Redis client info reporting (Report client info with SET_CLIENT_INFO correctly #21)
- fix(examples): update notebooks and Docker setup for consistency
- feat(redis): implement TTL support and upgrade langgraph to ^0.3.0 (Dependency Error for langgraph 0.3.x #18,Upgrade langgraph dependency to latest #23)
🔥 🔥 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Very nice. Left a question and a comment. But good from my perspective after that.
#23) - Add Time-To-Live (TTL) functionality to Redis store implementation TTL using Redis's native TTL functionality - Update dependency to langgraph ^0.3.0 with proper import handling for create_react_agent and fix various type errors to ensure linting sanity. - Added null checks for connection_args to satisfy mypy type checking. - Implemented the URL environment variable handling directly in our code.
Adds proper Redis client identification using SET_CLIENT_INFO for both synchronous and asynchronous clients. Includes graceful fallback to echo when the command is not available and comprehensive tests for both checkpoint and store components.
…#13) Add cleanup logic to AsyncShallowRedisSaver and ShallowRedisSaver to delete old blobs and writes when storing new checkpoints. This prevents memory bloat when using shallow savers, which should only keep the latest checkpoint state. Add comprehensive test to verify the fix works correctly.
Update previously skipped tests to work without external dependencies: - Replace test_batch_order with a functional test of batch operations - Implement memory_persistence test using sequential store connections - Convert LLM-dependent tests to use mock agents instead of real OpenAI - Fix root_graph_checkpoint tests to use proper configuration format - Add proper cleanup to ShallowRedisSaver implementations All tests now run successfully without API keys or special setup.
- Add transaction handling to AsyncRedisSaver.aput and aput_writes methods - Add transaction handling to AsyncShallowRedisSaver.aput method - Fix typing issue in shallow.py - Add comprehensive tests for interruption handling - Ensure atomic operations in Redis using pipeline with transaction=True - Proper handling of asyncio.CancelledError during interruptions
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I'm not well versed this code base since I'm newbie to langgraph as well as this repo.
But I skimmed through the code and changes look ok to me.
One feedback I've is - this PR could've been staged as 2 or 3 PRs for each issue.
@bsbodden We're seeing some issues after upgrading to this version.
Also, I don't see checkpoint index created. Check screenshot below: |